Default States Machine
    open class DefaultStatesMachine<T : State>(    statesManager: StatesManager<T>,     handlers: List<CheckableHandlerHolder<in T, T>>,     onStateHandlingErrorHandler: StateHandlingErrorHandler<T> = defaultStateHandlingErrorHandler()) : StatesMachine<T> 
Content copied to clipboard
Default realization of StatesMachine. It uses statesManager for incapsulation of States storing and contexts resolving, and uses launchStateHandling for State handling.
This class suppose to be extended in case you wish some custom behaviour inside of launchStateHandling, for example
Constructors
Link copied to clipboard
                fun <T : State> DefaultStatesMachine(    statesManager: StatesManager<T>,     handlers: List<CheckableHandlerHolder<in T, T>>,     onStateHandlingErrorHandler: StateHandlingErrorHandler<T> = defaultStateHandlingErrorHandler())
Content copied to clipboard
Functions
Link copied to clipboard
                Will call launchStateHandling for state handling
Link copied to clipboard
                open suspend override fun launchStateHandling(state: T, handlers: List<CheckableHandlerHolder<in T, T>>): T?
Content copied to clipboard
open suspend fun launchStateHandling(    state: T,     handlers: List<CheckableHandlerHolder<in T, T>>,     onStateHandlingErrorHandler: StateHandlingErrorHandler<T>): T?
Content copied to clipboard
Link copied to clipboard
                open suspend fun performStateUpdate(    previousState: Optional<T>,     actualState: T,     scope: CoroutineScope)
Content copied to clipboard
Link copied to clipboard
                Launch handling of states. On statesManager, statesManager will be called lambda with performing of state. If launchStateHandling will returns some State then statesManager will be used, otherwise StatesManager.endChain.
Link copied to clipboard
                Just calls StatesManager.startChain of statesManager